const model = {
  key: "dingtalk",
  name: "钉钉API",
  group: ["dingtalk","alibaba"],

  template: [
    {
      key: "base",
      name: "基础",
      input: {},
      output: {},
      url: "/api/libs/dingtalk/base.js",
    },
    {
      key: "get_department_userids",
      name: "获取部门用户userid列表",
      description: "通过部门id获取某个部门下所有成员的名称和对应的员工id",
      input: {
        deptId: {
          key: "deptId",
          remark: "部门id"
        }
      },
      output: {
        userIds: {
          key: "userIds",
          remark: "userid列表"
        }
      },
      url: "/api/libs/dingtalk/get_department_userids.js",
    },
    {
      key: "get_department_userlist",
      name: "获取部门用户",
      input: {
        department_id: {
          key: "department_id",
          remark: "部门id"
        }
      },
      output: {
        userlist: {
          key: "userlist",
          remark: "部门用户列表，userid是员工id，name是成员名称"
        }
      },
      url: "/api/libs/dingtalk/get_department_userlist.js",
    },
    {
      key: "get_department_userdetails_list",
      name: "获取部门用户详情",
      description: "根据部门id获取某个部门下所有成员的详细信息",
      input: {
        department_id: {
          key: "department_id",
          remark: "获取的部门id，1表示根部门"
        }
      },
      output: {
        userlist: {
          key: "userlist",
          remark: "成员列表"
        }
      },
      url: "/api/libs/dingtalk/get_department_userdetails_list.js",
    },
    {
      key: "get_userid_by_mobile",
      name: "根据手机号获取userid",
      input: {
        mobile: {
          key: "mobile",
          remark: "必须参数，手机号码"
        }
      },
      output: {
        userid: {
          key: "userid",
          remark: "返回的员工id"
        }
      },
      url: "/api/libs/dingtalk/get_userid_by_mobile.js",
    },
    {
      key: "create_department",
      name: "创建部门",
      description: "创建部门信息，部分参数说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/dubakq/97578482",
      input: {
        name: {
          key: "name",
          remark: "必须参数，部门名称，长度限制为1~64个字符，不允许包含字符‘-’‘，’以及‘,’"
        },
        parentid: {
          key: "parentid",
          remark: "必须参数，父部门id，根部门id为1"
        },
        order: {
          key: "order",
          remark: "在父部门中的排序值，order值小的排序靠前"
        },
        createDeptGroup: {
          key: "createDeptGroup",
          remark: "是否创建一个关联此部门的企业群，默认为'false'，'true'表示创建"
        },
        deptHiding: {
          key: "deptHiding",
          remark: "是否隐藏部门，'true'表示隐藏，'false'表示显示"
        }
      },
      output: {
        id: {
          key: "id",
          remark: "创建的部门id"
        }
      },
      url: "/api/libs/dingtalk/create_department.js",
    },
    {
      key: "update_department",
      name: "更新部门",
      description: "根据部门id修改指定部门信息，部分参数说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/dubakq/ed9c05fc",
      input: {
        id: {
          key: "id",
          remark: "必须参数，要修改的部门的id"
        },
        name: {
          key: "name",
          remark: "部门名称，长度限制为1~64个字符，不允许包含字符‘-’‘，’以及‘,’"
        },
        parentid: {
          key: "parentid",
          remark: "父部门id，根部门id为1"
        },
        order: {
          key: "order",
          remark: "在父部门中的排序值，order值小的排序靠前"
        },
        createDeptGroup: {
          key: "createDeptGroup",
          remark: "是否创建一个关联此部门的企业群，'true'表示创建'false'表示不创建"
        },
        deptHiding: {
          key: "deptHiding",
          remark: "是否隐藏部门，'true'表示隐藏'false'表示显示"
        }
      },
      output: {
        id: {
          key: "id",
          remark: "已经更新的部门id"
        }
      },
      url: "/api/libs/dingtalk/update_department.js",
    },
    {
      key: "creat_user",
      name: "创建用户",
      input: {
        userid: {
          key: "userid",
          remark: "员工在当前企业内的唯一标识，也称staffId。可由企业在创建时指定，并代表一定含义比如工号，创建后不可修改，企业内必须唯一。长度为1~64个字符，如果不传，服务器将自动生成一个userid。"
        },
        name: {
          key: "name",
          remark: "必须参数，成员名称。"
        },
        department: {
          key: "department",
          remark: "必须参数，数组形式的字符串，数组里面值为整型，成员所属部门id列表。示例值：'[1,2]'"
        },
        mobile: {
          key: "mobile",
          remark: "必须参数，手机号码，企业内必须唯一，不可重复。如果是国际号码，请使用+xx-xxxxxx的格式"
        },
        position: {
          key: "position",
          remark: "职位信息。"
        },
        orderInDepts: {
          key: "orderInDepts",
          remark: "JSON形式的字符串，在对应的部门中的排序，Map结构的json字符串，key是部门的id, value是人员在这个部门的排序值。示例值：'{1:10,2:20}'"
        },
        tel: {
          key: "tel",
          remark: "分机号，长度为0~50个字符，企业内必须唯一，不可重复。"
        },
        workPlace: {
          key: "workPlace",
          remark: "办公地点，长度为0~50个字符。"
        },
        remark: {
          key: "remark",
          remark: "备注，长度为0~1000个字符。"
        },
        email: {
          key: "email",
          remark: "邮箱，长度为0~64个字符。企业内必须唯一，不可重复。"
        },
        orgEmail: {
          key: "orgEmail",
          remark: "员工的企业邮箱，员工的企业邮箱已开通，才能增加此字段， 否则会报错。"
        },
        jobnumber: {
          key: "jobnumber",
          remark: "员工工号。对应显示到OA后台和客户端个人资料的工号栏目。长度为0~64个字符。"
        },
        isHide: {
          key: "isHide",
          remark: "是否号码隐藏。'true'表示隐藏，'false'表示不隐藏。隐藏手机号后，手机号在个人资料页隐藏，但仍可对其发DING、发起钉钉免费商务电话。"
        },
        isSenior: {
          key: "isSenior",
          remark: "是否高管模式。'true'表示是，'false'表示不是。开启后，手机号码对所有员工隐藏。普通员工无法对其发DING、发起钉钉免费商务电话。高管之间不受影响。"
        },
        hiredDate: {
          key: "hiredDate",
          remark: "数字类型，入职时间，Unix时间戳，单位ms。"
        }
      },
      output: {
        result: {
          key: "result",
          remark: "返回结果"
        }
      },
      url: "/api/libs/dingtalk/creat_user.js",
    },
    {
      key: "update_user",
      name: "更新用户",
      input: {
        userid:{
          key:"userid",
          remark:"必须值，要更新的用户的员工id，长度为1~64个字符"
        },
        name:{
          key:"name",
          remark:"成员名称，长度为1~64个字符"
        },
        department:{
          key:"department",
          remark:"成员所属部门id列表，示例值：'[10,20]'"
        },
        orderInDepts:{
          key:"orderInDepts",
          remark:"JSON形式的字符串，表示在对应的部门中的排序，Map结构的json字符串，key是部门的id, value是人员在这个部门的排序值。示例值：'{1:10,2:20}'"
        },
        position:{
          key:"position",
          remark:"职位信息。长度为0~64个字符"
        },
        tel:{
          key:"tel",
          remark:"分机号，长度为0~50个字符"
        },
        workPlace:{
          key:"workPlace",
          remark:"办公地点，长度为0~50个字符"
        },
        remark:{
          key:"remark",
          remark:"备注，长度为0~1000个字符"
        },
        email:{
          key:"email",
          remark:"邮箱，长度为0~64个字符，企业内必须唯一"
        },
        orgEmail:{
          key:"orgEmail",
          remark:"员工的企业邮箱，需要确认员工已经开通企业邮箱，否则会报错"
        },
        jobnumber:{
          key:"jobnumber",
          remark:"员工工号，对应显示到OA后台和客户端个人资料的工号栏目，长度为0~64个字符"
        },
        isHide: {
          key: "isHide",
          remark: "是否号码隐藏。'true'表示隐藏，'false'表示不隐藏。隐藏手机号后，手机号在个人资料页隐藏，但仍可对其发DING、发起钉钉免费商务电话。"
        },
        isSenior: {
          key: "isSenior",
          remark: "是否高管模式。'true'表示是，'false'表示不是。开启后，手机号码对所有员工隐藏。普通员工无法对其发DING、发起钉钉免费商务电话。高管之间不受影响。"
        },
        hiredDate: {
          key: "hiredDate",
          remark: "数字类型，入职时间，Unix时间戳，单位ms。"
        }
      },
      output: {},
      url: "/api/libs/dingtalk/update_user.js",
    },
    {
      key: "delete_user",
      name: "删除用户",
      description:"根据userid删除指定用户",
      input: {
        userid:{
          key:"userid",
          remark:"要删除的用户的员工id"
        }
      },
      output: {},
      url: "/api/libs/dingtalk/delete_user.js",
    },
    {
      key: "get_user",
      name: "获取用户详情",
      description:"根据userid获取指定用户的详细信息，部分返回参数的说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/ege851/AaRQe",
      input: {
        userid:{
          key:"userid",
          remark:"要获取的用户的员工id"
        }
      },
      output: {
        name:{
          key:"name",
          remark:"员工名字"
        },
        tel:{
          key:"tel",
          remark:"分机号（仅限企业内部开发调用）"
        },
        workPlace:{
          key:"workPlace",
          remark:"办公地点"
        },
        remark:{
          key:"remark",
          remark:"备注"
        },
        mobile:{
          key:"mobile",
          remark:"手机号码"
        },
        email:{
          key:"email",
          remark:"员工的电子邮箱"
        },
        orgEmail:{
          key:"orgEmail",
          remark:"员工的企业邮箱，如果员工已经开通了企业邮箱，接口会返回，否则不会返回"
        },
        department:{
          key:"department",
          remark:"成员所属部门id列表"
        },
        position:{
          key:"position",
          remark:"职位信息"
        },
        hiredDate:{
          key:"hiredDate",
          remark:"入职时间。Unix时间戳 （在OA后台通讯录中的员工基础信息中维护过入职时间才会返回)"
        },
        jobnumber:{
          key:"jobnumber",
          remark:"员工工号"
        }
      },
      url: "/api/libs/dingtalk/get_user.js",
    },
    {
      key: "delete_department",
      name: "删除部门",
      description:"根据部门id删除指定部门",
      input: {
        userid:{
          key:"id",
          remark:"要删除的部门的id"
        }
      },
      output: {},
      url: "/api/libs/dingtalk/delete_department.js",
    },
    {
      key:"get_sub_dept_id_list",
      name:"获取子部门id列表",
      description:"根据部门id获取指定部门下所有子部门的id列表",
      input:{
        id:{
          key:"id",
          remark:"父部门id。根部门的话传1"
        }
      },
      output:{
        sub_dept_id_list:{
          key:"sub_dept_id_list",
          remark:"子部门ID列表数据，示例值：'[2,3,4,5]'"
        }
      },
      url:"/api/libs/dingtalk/get_sub_dept_id_list.js",
    },
    {
      key:"get_department_list",
      name:"获取部门列表",
      description:"根据父部门id获取父部门下的子部门列表，部分参数说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/dubakq/e6e1604e",
      input:{
        id:{
          key:"id",
          remark:"父部门id（如果不传，默认部门为根部门，根部门ID为1）"
        }
      },
      output:{
        department:{
          key:"department",
          remark:"部门列表数据，以部门的order字段从小到大排列"
        }
      },
      url:"/api/libs/dingtalk/get_department_list.js"
    },
    {
      key:"get_department",
      name:"获取部门详情",
      description:"根据部门id获取指定部门的详细信息，部门返回参数说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/dubakq/5bf960de",
      input:{
        id:{
          key:"id",
          remark:"必须参数，要获取的部门的id"
        }
      },
      output:{
        name:{
          key:"name",
          remark:"部门名称"
        },
        parentid:{
          key:"parentid",
          remark:"父部门id，根部门为1"
        },
        order:{
          key:"order",
          remark:"当前部门在父部门下的所有子部门中的排序值"
        },
        createDeptGroup:{
          key:"createDeptGroup",
          remark:"是否同步创建一个关联此部门的企业群，'true'表示是，'false'表示不是"
        },
        deptHiding:{
          key:"deptHiding",
          remark:"是否隐藏部门，'true'表示隐藏，'false'表示显示"
        }
      },
      url:"/api/libs/dingtalk/get_department.js"
    },
    {
      key:"get_extcontact_label_list",
      name:"获取外部联系人标签列表",
      description:"部分返回参数说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/nb93oa/063e4bde",
      input:{},
      output:{
        list:{
          key:"list",
          remark:"获取到的标签列表"
        }
      },
      url:"/api/libs/dingtalk/get_extcontact_label_list.js"
    },
    {
      key:"get_extcontact_list",
      name:"获取外部联系人列表",
      description:"部分返回参数说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/nb93oa/b4ff3cbf",
      input:{},
      output:{
        list:{
          key:"list",
          remark:"获取的外部联系人列表"
        }
      },
      url:"/api/libs/dingtalk/get_extcontact_list.js"
    },
    {
      key:"get_extcontact",
      name:"获取外部联系人详情",
      description:"根据外部联系人id获取详细信息，部分返回参数说明请参考：https://ding-doc.dingtalk.com/doc#/serverapi2/nb93oa/b1e30673",
      input:{
        user_id:{
          key:"user_id",
          remark:"外部联系人id"
        }
      },
      output:{
        data:{
          key:"data",
          remark:"外部联系人详细信息"
        }
      },
      url:"/api/libs/dingtalk/get_extcontact.js"
    },
  ],

  libs: [
    {
      key: "dingtalk",
      name: "dingTalkApi",
      href: "https://github.com/bWhirring/dd-sdk",
    },
  ],
  config: {
    corpid: {
      key: "corpid",
      value: "",
      description: "企业id",
      remark: "",
      required: true,
    },
    appkey: {
      key: "appkey",
      value: "",
      description: "应用 AppKey",
      remark: "",
      required: true,
    },
    appsecret: {
      key: "appsecret",
      value: "",
      description: "应用 AppSecret",
      remark: "",
      required: true,
    },
    aesKey: {
      key: "aesKey",
      value: "",
      description: "加密的AES KEY",
      remark: "",
      required: true,
    },
    token: {
      key: "token",
      value: "",
      description: "消息token",
      remark: "",
      required: true,
    },
  },
};

module.exports = model;
